/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package jogopoo.Personagem;

import Itens.Ogiva;
import Itens.Raio;
import Itens.Tiro;
import java.awt.Image;
import java.awt.Toolkit;
import java.net.URL;
import jogopoo.Grafico.GrafCenario;

/**
 *
 * @author acer_5542
 */
/**
 * Classe contem metodo estatico, que vai servir para retornar o personagem ou
 * item do jogo.
 * @author acer_5542
 */
public class TipoPersonagens {
/**
 * Lista os Tipos de personagens.
 */
    public enum TPersonagem {

        NAVE,ALIEN_AZUL,ALIEN_VERDE,ALIEN_LARANJA,ALIEN_ROSA,NAVE_BONUS,
        BARREIRA, TIRO, OGIVA
    }

    private TipoPersonagens() {
    }
/**
 * Retorna o objeto ja instanciado com seu respectivo vetor de imagens conforme
 * o parametro de entrada TPersonagem tipo no respectivo GrafCenario cenario.
 */
    public static Personagens getInstance(GrafCenario cenario, TPersonagem tipo) {
        if (tipo == TPersonagem.NAVE) {
            Image[] desenho = new Image[5];
           for (int i = 0; i <= 4; i++) {
             String filename = "/imagens/canhao000"+(i+1)+".png";
             URL url = TipoPersonagens.class.getResource(filename);
             desenho[i] = Toolkit.getDefaultToolkit().getImage(url);
            }
        return new PersNave(cenario, desenho);
        } else if (tipo == TPersonagem.ALIEN_AZUL) {
            Image[] desenho = new Image[5];

            for (int i = 0; i <= 4; i++) {
                String filename = "/imagens/alien2000"+(i+1)+".png";
                URL url = TipoPersonagens.class.getResource(filename);
                desenho[i] = Toolkit.getDefaultToolkit().getImage(url);
            }

            return new PersInimigos(cenario, desenho);
        }else if (tipo == TPersonagem.ALIEN_VERDE) {
            Image[] desenho = new Image[5];

            for (int i = 0; i <= 4; i++) {
                String filename = "/imagens/000"+(i+1)+".png";
                URL url = TipoPersonagens.class.getResource(filename);
                desenho[i] = Toolkit.getDefaultToolkit().getImage(url);
            }

            return new PersInimigos(cenario, desenho);
        }else if (tipo == TPersonagem.ALIEN_ROSA) {
            Image[] desenho = new Image[5];

            for (int i = 0; i <= 4; i++) {
                String filename = "/imagens/alien3000"+(i+1)+".png";
                URL url = TipoPersonagens.class.getResource(filename);
                desenho[i] = Toolkit.getDefaultToolkit().getImage(url);
            }

            return new PersInimigos(cenario, desenho);
        }else if (tipo == TPersonagem.ALIEN_LARANJA) {
            Image[] desenho = new Image[5];

            for (int i = 0; i <= 4; i++) {
                String filename = "/imagens/alien4000"+(i+1)+".png";
                URL url = TipoPersonagens.class.getResource(filename);
                desenho[i] = Toolkit.getDefaultToolkit().getImage(url);
            }

            return new PersInimigos(cenario, desenho);
        }

        else if (tipo == TPersonagem.TIRO) {
            Image[] desenho = new Image[7];
            for (int i = 0; i < 7; i++) {
                String filename = "/imagens/bala000"+(i+1)+".png";
                URL url = TipoPersonagens.class.getResource(filename);
                desenho[i] = Toolkit.getDefaultToolkit().getImage(url);
            }
            return new Tiro(cenario, desenho,cenario.getPlayer(),1,
                    cenario.getListaPlaneta());
        }
        else if (tipo == TPersonagem.OGIVA) {
            Image[] desenho = new Image[39];
            for (int i = 0; i < 38; i++) {
                String filename = "/imagens/ogiva/ogiva00"+(i+1)+".png";
                URL url = TipoPersonagens.class.getResource(filename);
                desenho[i] = Toolkit.getDefaultToolkit().getImage(url);
            }
            return new Ogiva(cenario, desenho,cenario.getPlayer(),1,
                    cenario.getListaPlaneta());
        }

        return null;
    }

}
